#pragma once
# include<iostream>
using namespace std;


struct position
{
	int row;
	int col;
	int direction;
};

struct node
{
	position data;
	node* next;
};
class map
{
public:
	map(int** maze1, int m1, int n1)
	{
		maze = maze1;
		m = m1;
		n = n1;
	}

	int** maze;
	int m;
	int n;
	bool flag;
	bool initMaze();
	void createMaze();

};
class Bfs
{
public:
	Bfs(int** maze1, int m1, int n1)
	{
		maze = maze1;
		maze2 = maze1;
		m = m1;
		n = n1;
	}

	int** maze,**maze2;
	int m;
	int n;
	bool flag;
	void  bfsFindPath();

};
class Dfs
{
public:
	Dfs(int** maze1,int m1, int n1)
	{
		maze = maze1;
	
		m = m1;
		n = n1;
	}

	int** maze;
	int m;
	int n;
	void  dfsFindPath();

};